<?xml version="1.0" encoding="UTF-8"?>
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:p="http://primefaces.org/ui">

<h:panelGrid columns="10">
    <h:outputLabel value="Grupo Empresarial" rendered="#{grupoShow}"/>
    <p:selectOneMenu id="#{ui_cmb}_grupo" rendered="#{grupoShow}" value="#{jsfBean.reporteContext.grupoEmpresarialSelect}"
                     converter="#{managerGrupoDTOConverter}" effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbGrupoReporte}"
                       var="grupo" itemLabel="#{grupo.nombre}" itemValue="#{grupo}"/>
        <p:ajax event="change" update=":messages :frmReporte:tabReport:#{ui_cmb}_sociedad"
                listener="#{jsfBean.onSelectGrupo}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <h:outputLabel value="Sociedad"/>
    <p:selectOneMenu id="#{ui_cmb}_sociedad" value="#{jsfBean.reporteContext.sociedadSelect}"
                     converter="#{managerSociedadDTOConverter}" effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbSociedadReporte}"
                       var="sociedad" itemLabel="#{sociedad.nombre}" itemValue="#{sociedad}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <h:outputLabel value="Agrupación" rendered="#{agrupacionShow}"/>
    <p:selectOneMenu id="#{ui_cmb}_agrupacion" value="#{jsfBean.reporteContext.agrupacionSelect}"
                     rendered="#{agrupacionShow}" converter="#{managerAgrupacionDTOConverter}"
                     effect="fade" style="width: 150px">
        <f:selectItem itemValue="" itemLabel="Todos"/>
        <f:selectItems value="#{jsfBean.cmbAgrupacionReporte}"
                       var="agrupacion" itemLabel="#{agrupacion.nombre}" itemValue="#{agrupacion}"/>
    </p:selectOneMenu>
    <p:spacer width="30px"/>
    <p:commandButton value="Buscar" icon="ui-icon-refresh"  process="@this,#{ui_cmb}_grupo, #{ui_cmb}_agrupacion, #{ui_cmb}_sociedad"
                     actionListener="#{jsfBean.onSelectFiltro}"
                     ajax="true" update="#{ui_dtLista} :frmReporte :messages"
            />
</h:panelGrid>
<p:toolbar>
    <p:toolbarGroup align="right">
        <p:commandLink ajax="false" process="@this"
                       actionListener="#{jsfBean.printExcelReportAction}">
            <p:graphicImage value="../resources/images/newExcel.png" width="25px" height="25px"/>
            <f:attribute name="templateFile" value="#{jasperReporte}"/>
            <f:attribute name="templateType" value="xls"/>
            <f:attribute name="reportType" value="#{tipoReporte}"/>
        </p:commandLink>
        <p:commandLink ajax="false" process="@this"
                       actionListener="#{jsfBean.printExcelReportAction}">
            <p:graphicImage value="../resources/images/pdf.png" width="25px" height="25px"/>
            <f:attribute name="templateFile" value="#{jasperReporte}"/>
            <f:attribute name="templateType" value="pdf"/>
            <f:attribute name="reportType" value="#{tipoReporte}"/>
        </p:commandLink>
    </p:toolbarGroup>
</p:toolbar>
<p:dataTable id="#{ui_dtLista}" value="#{data_reporte}"
             var="item" rowKey="#{item.id}"
             rows="10" paginator="true"
             paginatorPosition="bottom" emptyMessage="No existen registros"
             paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
             rowsPerPageTemplate="5,10,25,50">
<p:columnGroup type="header">
    <p:row  >
        <p:column colspan="#{totalColsPan}" headerText="Totales: "  style="text-align:right"/>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalCantidad1}">
                    <f:convertNumber pattern="###,###,##0"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalAnno1}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalCantidad2}">
                    <f:convertNumber pattern="###,###,##0"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalAnno2}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalCantidad3}">
                    <f:convertNumber pattern="###,###,##0"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalAnno3}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalCantidad4}">
                    <f:convertNumber pattern="###,###,##0"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalAnno4}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
            </f:facet>
        </p:column>
        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalCantidad}">
                    <f:convertNumber pattern="###,###,##0.000"/>
                </h:outputText>
            </f:facet>
        </p:column>

        <p:column styleClass="columnRightTopClass">
            <f:facet name="header" >
                <h:outputText value="#{totalBean.totalGeneral}">
                    <f:convertNumber pattern="###,###,##0"/>
                </h:outputText>
            </f:facet>
        </p:column>


    </p:row>
    <p:row>
        <p:column headerText="Grupo Empresarial" rendered="#{grupoShow}" />
        <p:column headerText="Sociedad" />
        <p:column headerText="Agrupación" />
        <p:column colspan="2" headerText="Hasta #{jsfBean.reporteContext.checkPoint.anno1}" />
        <p:column colspan="2" headerText="#{jsfBean.reporteContext.checkPoint.anno2}" />
        <p:column colspan="2" headerText="#{jsfBean.reporteContext.checkPoint.anno3}" />
        <p:column colspan="2" headerText="#{jsfBean.reporteContext.checkPoint.anno4}" />
        <p:column headerText="Total Doc" />
        <p:column headerText="Total Importe" />
    </p:row>
</p:columnGroup>

<p:column styleClass="columnLeftTopClass" style="min-width:100px" rendered="#{grupoShow}">
    <h:outputText value="#{item.grupoEmpresarialNombre}"/>
</p:column>

<p:column styleClass="columnLeftTopClass" style="min-width:100px">
    <h:outputText value="#{item.sociedadNombre}"/>
</p:column>

<p:column styleClass="columnLeftTopClass" style="min-width:100px">
    <h:outputText value="#{item.agrupacionNombre}"/>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.cantidad1}">
            <f:convertNumber pattern="###,###,##0"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno1}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>
        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.anno1}">
            <f:convertNumber pattern="###,###,##0.000"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno1}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>

        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.cantidad2}">
            <f:convertNumber pattern="###,###,##0"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno2}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signo" value="#{item.signo}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>

        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.anno2}">
            <f:convertNumber pattern="###,###,##0.000"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno2}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>

        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.cantidad3}">
            <f:convertNumber pattern="###,###,##0"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno3}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>

        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.anno3}">
            <f:convertNumber pattern="###,###,##0.000"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno3}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>

        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.cantidad4}">
            <f:convertNumber pattern="###,###,##0"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno4}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>

        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">
    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.anno4}">
            <f:convertNumber pattern="###,###,##0.000"/>
        </h:outputText>
        <f:attribute name="anno" value="#{jsfBean.reporteContext.checkPoint.anno4}"/>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>
        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">

    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.cantidadGeneral}">
            <f:convertNumber pattern="###,###,##0"/>
        </h:outputText>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>
        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
<p:column styleClass="columnRightTopClass" style="min-width:30px">

    <p:commandLink actionListener="#{jsfBean.onDetalleItemCuenta}" ajax="true"
                   update=":detalleItem">
        <h:outputText value="#{item.totalGeneral}">
            <f:convertNumber pattern="###,###,##0.000"/>
        </h:outputText>
        <f:attribute name="sociedadId" value="#{item.sociedadId}"/>
        <f:attribute name="checkPointId" value="#{item.checkPointId}"/>
        <f:attribute name="usuario" value="#{item.usuario}"/>
        <f:attribute name="acreedorId" value="#{item.acreedorId}"/>
        <f:attribute name="agrupacionId" value="#{item.agrupacionId}"/>
        <f:attribute name="signoNatural" value="#{item.signoNatural}"/>
        <f:attribute name="signo" value="#{item.signo}"/>
        <f:attribute name="tipoReporte" value="#{tipoReporte}"/>
    </p:commandLink>
</p:column>
</p:dataTable>

</ui:composition>
